TalendでSalesforceのオブジェクトをMySqlに対してSelect/Insertしてみた。
はじめに
好物はインフラとフロントエンドのかじわらゆたかです。 前回TalendでSalesforceに接続を行いました。 今回はSalesforceで最初から作成されているオブジェクトからデータを抽出し、 MySQLのテーブルに反映させてみたいと思います。
tSalesforceInput
Salesforceのオブジェクトを抽出するコンポーネントになります。 接続情報を個別に設定することもできますし、tSalesforceConnectionの接続情報を用いることも可能です。
今回はtSalesforceConnectionで設定した接続情報を用いて、 Salesforceに最初から作成されているContact(取引先責任者)の情報を抽出してみたいと思います。
tSalesforceConnectionで接続情報を設定しコンポーネントがOKの場合で、 tSalesforceInputにつなげます。 tSalesForceInputでの抽出結果を見たいので、RowのメインをtLogRowにつなげます。
tSalesforceInputの設定は既存の接続を使用で、tSalesforceConnectionを選択し、 オブジェクトはコンタクトを選びます。
MySQLへの反映
抽出した結果をMySQLのテーブルに反映したいと思います。 反映用のデータベースとテーブルを作成します。
CREATE DATABASE salesforce; CREATE TABLE salesforce.contact ( Email text, Name text )
tMySQLConnectionに接続情報を設定し配置します。 tMySQLOutputに上記で作成したテーブルに合わせてスキーマを設定します。
tSalesforceとtMySQLOutputの間にデータ変換を行うので、tMapを用いて変換を行います。
最後にtMySQLCommitを配置します。 すべてのコンポーネントを配置すると以下の様になります。
上記のジョブを動かすと、MySQLに値が反映されたことが確認できます。
mysql> select * from salesforce.contact; +---------------------------+-------------------+ | Email | Name | +---------------------------+-------------------+ | [email protected] | Rose Gonzalez | | [email protected] | Sean Forbes | | [email protected] | Jack Rogers | | [email protected] | Pat Stumuller | | [email protected] | Andy Young | | [email protected] | Tim Barr | | [email protected] | John Bond | | [email protected] | Stella Pavlova | | [email protected] | Lauren Boyle | | b.levy@expressl&t.net | Babara Levy | | j.davis@expressl&t.net | Josh Davis | | [email protected] | Jane Grey | | [email protected] | Arthur Song | | [email protected] | Ashley James | | [email protected] | Tom Ripley | | [email protected] | Liz D'Cruz | | [email protected] | Edna Frank | | [email protected] | Avi Green | | NULL | Siddartha Nedaerk | | NULL | Jake Llorrac | +---------------------------+-------------------+
まとめ
SalesforceからMySQLのテーブルに対して、データを抽出し反映できたことが確認できました。 今回はMySQLに対して行いましたが、Redshiftにデータを反映させることで、 Salesforceのデータをビックデータ分析基盤のデータソースとして用いることもできそうです。